#!/usr/bin/python
# -*- coding: utf-8 -*-

##
 # Copyright 2009 Caio Souza
 # This file is part of Rpyg.
 #
 # Rpyg is free software: you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
 # the Free Software Foundation, either version 3 of the License, or
 # (at your option) any later version.
 #
 # Rpyg is distributed in the hope that it will be useful,
 # but WITHOUT ANY WARRANTY; without even the implied warranty of
 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 # GNU General Public License for more details.
 #
 # You should have received a copy of the GNU General Public License
 # along with Rpyg. If not, see <http://www.gnu.org/licenses/>.
 ##

'''Módulo da janela e tela do jogo.'''

import pygame

class Screen:
    '''Classes com o métodos de acesso à tela do jogo.'''
    
    def __init__(self):
        '''
        Cria uma nova tela para o jogo, pode haver somente uma
        instâcia dessa classe.
        '''
        
        self._size = 672, 480
        '''Tamanho da janela.'''
        
        self._caption = 'Rpyg'
        '''Título da janela.'''
    
    def setMode(self, size=(672, 480), caption='Rpyg'):
        '''Muda os atributos da janela.'''
        
        self._size = tuple(size)
        '''Tamanho da janela.'''
        
        self._caption = caption
        '''Título da janela.'''
        
        self._surface = pygame.display.set_mode(self._size)
        pygame.display.set_caption(caption)
        
    def blit(self, surface, rect):
        '''Mostra uma imagem na tela.'''
        
        self._surface.blit(surface, rect)
        
    def update(self):
        '''Atualiza a tela.'''
        
        pygame.display.update()
        
    def getSize(self):
        '''Retorna o tamanho da tela.'''
        
        return self._size
        
    def __str__(self):
        '''Representação da tela como um string.'''
        
        return '<rpyg.Screen %s, %s>' % (self._caption, str(self._size))

    def __repr__(self):
        '''Representação da tela como um string.'''
        
        return str(self)
    
Screen = Screen()
'''Instância global da tela.'''

Screen.setMode()

